# 装饰器类的写法
import sys


class Login(object):
    loginFlag = False

    def __init__(self, func):
        self.func = func

    def __call__(self, *args, **kwargs):

        if not self.loginFlag:
            print('您还没有登录！')
            lo = input('您是否要登录？Y/N')
            if lo == 'Y' or lo == 'y':
                username = input('请输入用户名：')
                password = input('请输入密码：')
                if username == 'admin' and password == '':
                    self.loginFlag = True
                    return self.func(*args, **kwargs)
                return None
            else:
                print('您没登陆，系统推出！')
                sys.exit()
        else:
            return self.func(*args, **kwargs)


@Login  # 这个注解就是 装饰器代码。
def comment():
    print('发布评论')


if __name__ == '__main__':
    # print(comment.__name__) # 报错，这个方法没有名字，他是被装饰器类修饰的
    comment()
